---
id: 30001
title: 串口
---

import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';

### 前言

串口使用一个称为串行通信协议的协议来管理数据传输。串行通信协议在数据传输期间控制数据流，包括起始位、数据位、波特率、校验位和停止位等。    
下面每个名称做一个简单的解释。   

``波特率``是指串口通信中每秒传输的二进制位数
``起始位``是1位时间、值为0的位。      
``数据位``通常可能为1位、1.5位、2位时间。          
``校验位``是1位时间，根据校验方式确定验证值，比如奇校验时，计算数据位中的值为1的个数，如果是奇数，则为1，否则应为0      
``停止位``通常可能为1位、1.5位、2位时间。停止位是值为1的位。停止位代表着数据传输结束。     

线路路空闲或者数据传输结束时，值总是1。   
对于正逻辑的TTL电平，值为1是高电平，对于负逻辑(如RS-232电平)则相反。

单看文字很难理解具体含义，所以我们看图说话，下面这张串口示波器图清晰的表现出二进制的传输原理

<img src={require("@site/static/img/docs/串口1.png").default} />


如上图，可以看出2进制是 起始``1``、数据(右到左)``01010101``、停止``0``  ，那么解析出来的数据就是``0x55``

看到这里，相信大家都对串口知识有了一定的理解，这些基础知识对于c#工程师看似没有必要，但可以让你的实际调试开发工作更加得心应手
